package com.school.sports.annotation;

import com.school.sports.entity.OperationType;
import java.lang.annotation.*;

/**
 * 操作日志注解
 * 用于标记需要记录操作日志的方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OperationLog {

    /**
     * 操作类型
     * @return 操作类型
     */
    OperationType operationType() default OperationType.OTHER;

    /**
     * 操作描述
     * @return 操作描述
     */
    String description() default "";

    /**
     * 操作模块
     * @return 操作模块
     */
    String module() default "";

    /**
     * 是否记录请求参数
     * @return true-记录，false-不记录
     */
    boolean recordParams() default true;

    /**
     * 是否记录响应结果
     * @return true-记录，false-不记录
     */
    boolean recordResult() default false;

    /**
     * 敏感参数列表（不记录的参数名）
     * @return 敏感参数列表
     */
    String[] sensitiveParams() default {"password", "passwordHash", "oldPassword", "newPassword"};
}